package com.mr.xie.dao;

import java.util.List;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.jpa.repository.Query;

import com.mr.xie.model.Resume;

/**
 * JpaRepository    封装基本CRUD操作
 * JpaSpecificationExecutor 封装复杂的查询（分页、排序等）
 */
public interface ResumeDao extends JpaRepository<Resume, Long>, JpaSpecificationExecutor<Resume> {
    /**
     * jpql查询
     */
    @Query("from Resume where id = ?1 and name = ?2")
    List<Resume> findByJpql(Long id, String name);

    /**
     * nativeQuery = true，使用原生sql语句查询
     */
    @Query(value = "select * from tb_resume where name like ?1 and address like ?2", nativeQuery = true)
    List<Resume> findBySql(String name, String address);

    /**
     * 方法命名规则查询
     * 1.方法名需要以findBy开头
     * 2.属性名（首字母大写）
     * 3.查询方式（模糊、等价查询），默认等价查询
     *
     * @param name 姓名
     */
    List<Resume> findByNameLikeAndAddress(String name, String address);
}
